iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
自我挑戰組

JavaScript基礎介紹 for 30天系列 第 17

第十七天 JavaScript DOM 建立

  • 分享至 

  • xImage
  •  

前兩天我們介紹如何找節點,今天我們要來介紹如何使用 JavaScript 動態的建立節點。

document.createElement()
可以使用這個方法動態建立一個新的節點,如下:

document.createElement('div')

剛建立出來的節點,這時候的瀏覽器還沒辦法顯示它,我們可以透過 appendChild()、 insertBefore()、 replaceChild() 這些方法把我們動態建立的節點加入到我們想要的位置,瀏覽器才能夠顯示它!

document.createTextNode()
除了上面的 html 節點之外,我們也可以使用 createTextNode() 來新增一個文字節點,我們直接在這個方法加入我們想要的字串就可以了!不過跟動態新增 html 節點一樣,剛新增是沒辦法把瀏覽器顯示的!

let div = document.createElement('div') //新增 html 節點

let text = document.createTextNode('Hi ! I'm Jerry') // 新增 文字節點
div.appendChild(text) // 將剛新增的文字節點放進去到我們剛新增的 html 節點裡面

document.createDocumentFragment()
它是一種沒有父層節點的 “最小化文件物件”。 可以把它看作是一個虛擬的容器,可以保存一段文件結構。

let ul = document.querySelector('.myList') // 取得外層容器
let fragment = document.createDocumentFragment() // 建立虛擬容器
for (let i = 0, i < 3, i++){
  let li = document.createElement('li')
  li.appendChild(document.createTextNode("item" + (i + 1)))
  fragment.appendChild(li)
}
ul.appendChild(fragment) // 將組合好的 fragment 放入 ul 裡面

注意:當我們要進行大量的 DOM 操作,使用 DocumentFragment 效能會比直接操作 DOM 好!

document.write()
document 物件如果要把某個內容寫入網頁可以使用 write() 方法,除了是字串外,也可以是 html 標籤!

document.write('<h1>Hi</h1>')

注意:剛網頁已經讀取完之後才執行 document.write(),所以裡面的新增出來的內容會覆蓋掉原本的!


上一篇
第十六天 JavaScript DOM 找節點(下)
下一篇
第十八天 JavaScript DOM 修改與刪除
系列文
JavaScript基礎介紹 for 30天24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言